//http://web.ukonline.co.uk/mseries/MDateEntryField.html - Calendario
package ventanas;

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import mseries.Calendar.MDateChanger;
import mseries.Calendar.MDefaultPullDownConstraints;
import mseries.ui.MDateEntryField;
import entidades.AnteojosEntity;
import entidades.ClienteEntity;
import entidades.Multifocal;

public class FormularioAnteojo extends JDialog {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Font fuente = new Font("Helvetica", Font.BOLD, 14);
	private ClienteEntity cliente = null;
	private AnteojosEntity anteojo = null;
	private GridBagLayout gridbag = null;
	private GridBagLayout gridbagGraduaciones = null;
	private GridBagLayout gridbagDerecho= null;
	private Container contenedor = null;
	private GridBagConstraints c = null;
	private GridBagConstraints cg = null;
	private GridBagConstraints cd = null;
	private JPanel pnlGraduaciones = null;
	private JPanel pnlDerecho = null;
	private JPanel pnlOD = null;
	private JPanel pnlOI = null;
	private JPanel pnlOD2 = null;
	private JPanel pnlOI2 = null;
	private JPanel pnlPrecios = null;
	private JPanel pnlBotonera = null;
	private JLabel lblCliente = null;
	private JLabel lblNombreCliente = null;
	private JLabel lblAnteojo = null;
	private JLabel lblNAnteojo = null;
	private JLabel lblArmazon = null;
	private JLabel lblLente = null;
	private JLabel lblTipo = null;
	private JLabel lblEsf = null;
	private JLabel lblCil = null;
	private JLabel lblGrado = null;
	private JLabel lblFechaPedido = null;
	private JLabel lblCerca = null;
	private JLabel lblLejos = null;	
	private JLabel lblDescripcionArmazon = null;
	private JLabel lblDoctor = null;
	private JLabel lblPrecioArmazon = null;
	private JLabel lblPrecioLente = null;	
	private JLabel lblPrecioTratamiento = null;
	private JLabel lblPrecioTotal = null;
	private JLabel lblFormaPago = null;
	private MDateEntryField fechaPedido = null;
	private MDefaultPullDownConstraints mDateC = null;
	private JTextField txtDescripcionArmazon = null;
	private JTextField txtEsfOD = null;	
	private JTextField txtCilOD = null;
	private JTextField txtGradoOD = null;
	private JTextField txtEsfOI = null;
	private JTextField txtCilOI = null;
	private JTextField txtGradoOI = null;
	private JTextField txtEsfOD2 = null;
	private JTextField txtCilOD2 = null;
	private JTextField txtGradoOD2 = null;
	private JTextField txtEsfOI2 = null;
	private JTextField txtCilOI2 = null;
	private JTextField txtGradoOI2 = null;
	private JTextField txtLente = null;
	private JTextField txtDoctor = null;
	private JTextField txtPrecioArmazon= null;
	private JTextField txtPrecioLente = null;
	private JTextField txtPrecioTratamiento = null;
	private JTextField txtPrecioTotal = null;
	
	private JComboBox comboArmazon = null;
	private JComboBox comboTipo = null;
	private JComboBox comboFormaPago = null;
	private JTextArea txaObservaciones = null;
	private JScrollPane scrollObservaciones = null;
	private JButton btnAceptar = null;
	private JButton btnCancelar = null;
	private JButton btnReset = null;
	private boolean modificacion = false;
	private boolean modificada = false;
	private VentanaMain frmMain = null;
	private int rowEnTabla = 0;
	


	public boolean isModificada() {
		return modificada;
	}

	public void setModificada(boolean modificada) {
		this.modificada = modificada;
	}

	public FormularioAnteojo(ClienteEntity cliente, VentanaMain frmMain, AnteojosEntity anteojo) {

		this.frmMain = frmMain;
		this.cliente = cliente;
		if(anteojo!=null){this.anteojo = anteojo; setModificacion(true);}
		else this.anteojo = new AnteojosEntity();
		
		
		setTitle("Nuevo Anteojo, " + cliente.getApellido() + ","
				+ cliente.getNombre());

		c = new GridBagConstraints();
		cg = new GridBagConstraints();
		cd = new GridBagConstraints();
		gridbag = new GridBagLayout();
		gridbagGraduaciones = new GridBagLayout();
		gridbagDerecho = new GridBagLayout();
		contenedor = getContentPane();
		contenedor.setLayout(gridbag);
		btnAceptar = new JButton("Aceptar");
		btnCancelar = new JButton("Cancelar");
		btnReset = new JButton("Reset");
		pnlBotonera = new JPanel(new FlowLayout());
		lblLente = new JLabel("Lente: ");
		lblTipo = new JLabel("Tipo: ");
		lblArmazon = new JLabel("Armazon: ");
		lblAnteojo = new JLabel("Anteojo");
		lblNAnteojo = new JLabel();
		lblCliente = new JLabel("Cliente: ");
		lblNombreCliente = new JLabel();
		comboArmazon = new JComboBox();
		comboTipo = new JComboBox();
		comboFormaPago = new JComboBox();
		txtLente = new JTextField(15);
		txaObservaciones = new JTextArea(10,20);
		scrollObservaciones = new JScrollPane();
		pnlOD = new JPanel(new GridLayout(3, 2));
		pnlOI = new JPanel(new GridLayout(3, 2));
		pnlGraduaciones = new JPanel(gridbagGraduaciones);
		pnlDerecho = new JPanel(gridbagDerecho);
		lblEsf = new JLabel("Esf: ");
		lblCil = new JLabel("Cil: ");
		lblGrado = new JLabel("Grado: ");
		txtDescripcionArmazon = new JTextField(15);
		txtEsfOI = new JTextField(7);
		txtCilOI = new JTextField(7);
		txtGradoOI = new JTextField(4);
		txtEsfOD = new JTextField(7);
		txtCilOD = new JTextField(7);
		txtGradoOD = new JTextField(4);
		lblFechaPedido = new JLabel("Fecha Pedido: ");
		fechaPedido = new MDateEntryField(DateFormat.getDateInstance(DateFormat.MEDIUM));
		mDateC = new MDefaultPullDownConstraints();		
		lblCerca = new JLabel("Cerca");
		lblLejos = new JLabel("Lejos");
		lblDescripcionArmazon = new JLabel("Descripcion Armazon: ");
		lblDoctor = new JLabel("Doctor: ");
		txtDoctor = new JTextField(15);
		lblPrecioArmazon = new JLabel("Precio Armazon: ");
		lblPrecioLente = new JLabel("Precio Lente: ");
		lblPrecioTratamiento = new JLabel("Precio Tratamiento: ");
		lblPrecioTotal = new JLabel("Precio Total: ");
		lblFormaPago = new JLabel("Forma de pago: ");
		txtPrecioArmazon = new JTextField(5);
		txtPrecioLente = new JTextField(5);
		txtPrecioTratamiento = new JTextField(5);
		txtPrecioTotal = new JTextField(5);
		pnlPrecios = new JPanel(new GridLayout(5,2));
		launch();
		if(isModificacion())setComponentes(anteojo);
		
	}

	private void setComponentes(AnteojosEntity anteojoModif) {
		lblNAnteojo.setText(String.valueOf(anteojo.getId()));
		lblNombreCliente.setText(cliente.getApellido() + ", " + cliente.getNombre());
		fechaPedido.setValue(new java.util.Date(anteojo.getFechaPedido().getTime()));		
		if(anteojo.getFechaPedido().before(new java.util.Date(new GregorianCalendar(2008,7,23).getTimeInMillis()))){
			comboArmazon.addItem(anteojo.getArmazon());
		}
		comboArmazon.setSelectedItem(anteojo.getArmazon());
		comboTipo.setSelectedItem(anteojo.getTipo());
		comboFormaPago.setSelectedItem(anteojo.getFormaPago());
		txtEsfOD.setText(anteojo.getODEsf());
		txtCilOD.setText(anteojo.getODCil());
		txtGradoOD.setText(anteojo.getODGrado());
		txtEsfOI.setText(anteojo.getOIEsf());
		txtCilOI.setText(anteojo.getOICil());
		txtGradoOI.setText(anteojo.getOIGrado());
		txtLente.setText(anteojo.getLente());
		txaObservaciones.setText(anteojo.getObservaciones());
		txtDoctor.setText(anteojo.getDoctor());
		txtPrecioArmazon.setText(String.valueOf(anteojo.getPrecioArmazon()));
		txtPrecioLente.setText(String.valueOf(anteojo.getPrecioLente()));
		txtPrecioTratamiento.setText(String.valueOf(anteojo.getPrecioTratamiento()));
		txtPrecioTotal.setText(String.valueOf(anteojo.getPrecioTotal()));
		
		txtDescripcionArmazon.setText(anteojo.getDescripcionArmazon());
		
		if(anteojo.getTipo().equals("Bifocal") || anteojo.getTipo().equals("Multifocal")){
			modificarPantalla();
			Multifocal multifocal = Multifocal.getFromId(anteojo.getId()) ;
			txtEsfOD2.setText(multifocal.getODEsf());
			txtCilOD2.setText(multifocal.getODCil());
			txtGradoOD2.setText(multifocal.getODGrado());
			txtEsfOI2.setText(multifocal.getOIEsf());
			txtCilOI2.setText(multifocal.getOICil());
			txtGradoOI2.setText(multifocal.getOIGrado());
			
		}
		
		
	}

	public void launch() {

		lblCerca.setText("Cerca");
		lblLejos.setText("Lejos");
		lblCerca.setForeground(Color.BLUE);
		lblLejos.setForeground(Color.BLUE);
		lblCerca.setVisible(false);
		lblLejos.setVisible(false);
		comboTipo.setBackground(Color.WHITE);
		comboArmazon.setBackground(Color.WHITE);
		comboFormaPago.setBackground(Color.WHITE);
		
		
		for (int i = 0; i < AnteojosEntity.armazonesStatic.length; i++) {
			comboArmazon.addItem(AnteojosEntity.armazonesStatic[i]);
		}
		for (int i = 0; i < AnteojosEntity.tipoStatic.length; i++) {
			comboTipo.addItem(AnteojosEntity.tipoStatic[i]);
		}
		for (int i = 0; i < AnteojosEntity.formaPagoStatic.length; i++) {
			comboFormaPago.addItem(AnteojosEntity.formaPagoStatic[i]);
		}
		comboFormaPago.setSelectedIndex(1);
//		fechaPedido.addMFieldListener(new MFieldListener(){
//            public void fieldEntered(FocusEvent e)
//            {
//                System.out.println("Entered");
//            }
//            public void fieldExited(FocusEvent e)
//            {
//                System.out.println("Exited");
//            }
//        });

		mDateC.firstDay = Calendar.SUNDAY;		
		mDateC.changerStyle = MDateChanger.SPINNER;		
		//mDateC.changerStyle = 
		fechaPedido.setFont(fuente);
		fechaPedido.setConstraints(mDateC);
		
		
		txtDescripcionArmazon.setFont(fuente);
		txtLente.setFont(fuente);
		txtCilOD.setFont(fuente);
		txtCilOI.setFont(fuente);
		txtEsfOD.setFont(fuente);
		txtEsfOI.setFont(fuente);
		txtGradoOD.setFont(fuente);
		txtGradoOI.setFont(fuente);
		txtDoctor.setFont(fuente);

		setAlwaysOnTop(true);

		c.fill = c.HORIZONTAL;

		c.insets = new Insets(20, 20, 0, 20);

		// Numero Anteojo
		c.gridx = 0;
		c.gridy = 0;
		gridbag.setConstraints(lblAnteojo, c);
		contenedor.add(lblAnteojo);

		c.gridx = 1;
		c.gridy = 0;
		gridbag.setConstraints(lblNAnteojo, c);
		contenedor.add(lblNAnteojo);

		// Nombre Cliente
		lblNombreCliente.setText(cliente.getApellido() + ", "
				+ cliente.getNombre());
		c.insets = new Insets(10, 20, 0, 20);
		c.gridx = 0;
		c.gridy = 1;
		gridbag.setConstraints(lblCliente, c);
		contenedor.add(lblCliente);

		c.gridx = 1;
		c.gridy = 1;
		gridbag.setConstraints(lblNombreCliente, c);
		contenedor.add(lblNombreCliente);

		
		// Armazon
		c.gridx = 0;
		c.gridy = 2;
		gridbag.setConstraints(lblArmazon, c);
		contenedor.add(lblArmazon);

		c.gridx = 1;
		c.gridy = 2;
		gridbag.setConstraints(comboArmazon, c);
		contenedor.add(comboArmazon);

		//Descripcion armazon
		c.gridx = 0;
		c.gridy = 3;
		gridbag.setConstraints(lblDescripcionArmazon, c);
		contenedor.add(lblDescripcionArmazon);

		c.gridx = 1;
		c.gridy = 3;
		gridbag.setConstraints(txtDescripcionArmazon, c);
		contenedor.add(txtDescripcionArmazon);
		
		
		
		// Tipo
		c.gridx = 0;
		c.gridy = 4;
		gridbag.setConstraints(lblTipo, c);
		contenedor.add(lblTipo);

		c.gridx = 1;
		c.gridy = 4;
		gridbag.setConstraints(comboTipo, c);
		contenedor.add(comboTipo);
		
		// Lente
		
		c.gridx = 0;
		c.gridy = 5;
		gridbag.setConstraints(lblLente, c);
		contenedor.add(lblLente);

		c.gridx = 1;
		c.gridy = 5;
		gridbag.setConstraints(txtLente, c);
		contenedor.add(txtLente);
		
     
//////PANELES GRADUACION
		
		cg.gridx = 0;
		cg.gridy = 0;
		cg.gridwidth = 2;
		
		
		
		cg.insets = new Insets(20, 20, 10, 0);
		gridbagGraduaciones.setConstraints(lblLejos, cg);
		pnlGraduaciones.add(lblLejos);
	

		
		
		lblEsf = new JLabel("Esf: ");
		lblCil = new JLabel("Cil: ");
		lblGrado = new JLabel("Grado: ");
		
		
		pnlOD.add(lblEsf);
		pnlOD.add(txtEsfOD);
		pnlOD.add(lblCil);
		pnlOD.add(txtCilOD);
		pnlOD.add(lblGrado);
		pnlOD.add(txtGradoOD);
		pnlOD.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createTitledBorder("OD"), BorderFactory
						.createEmptyBorder(3, 3, 3, 3)));

		lblEsf = new JLabel("Esf: ");
		lblCil = new JLabel("Cil: ");
		lblGrado = new JLabel("Grado: ");
		pnlOI.add(lblEsf);
		pnlOI.add(txtEsfOI);
		pnlOI.add(lblCil);
		pnlOI.add(txtCilOI);
		pnlOI.add(lblGrado);
		pnlOI.add(txtGradoOI);
		pnlOI.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createTitledBorder("OI"), BorderFactory
						.createEmptyBorder(3, 3, 3, 3)));

		
		cg.gridwidth = 1;
		cg.gridx = 0;
		cg.gridy = 1;
		gridbagGraduaciones.setConstraints(pnlOD, cg);
		pnlGraduaciones.add(pnlOD);

		cg.gridx = 1;
		cg.gridy = 1;
		gridbagGraduaciones.setConstraints(pnlOI, cg);
		pnlGraduaciones.add(pnlOI);

	/////FIN PANELES GRADUACION
		
		c.gridx = 0;
		c.gridy = 6;
		c.gridwidth = 2;
		gridbag.setConstraints(pnlGraduaciones, c);
		contenedor.add(pnlGraduaciones);
		

		
////////COMIENZO PANEL DERECHO
		// Fecha Pedido
		cd.insets = new Insets(10, 0, 0, 0);
		cd.gridx = 0;
		cd.gridy = 0;
		gridbagDerecho.setConstraints(lblFechaPedido, cd);
		pnlDerecho.add(lblFechaPedido);

		cd.gridx = 1;
		cd.gridy = 0;
		gridbagDerecho.setConstraints(fechaPedido, cd);
		pnlDerecho.add(fechaPedido);
	
		//Doctor
		cd.gridx = 0;
		cd.gridy = 1;
		gridbagDerecho.setConstraints(lblDoctor, cd);
		pnlDerecho.add(lblDoctor);

		cd.gridx = 1;
		cd.gridy = 1;
		gridbagDerecho.setConstraints(txtDoctor, cd);
		pnlDerecho.add(txtDoctor);

		
		//Observaciones
		scrollObservaciones.setBorder(BorderFactory.createCompoundBorder(BorderFactory
				.createTitledBorder("Observaciones"), BorderFactory
				.createEmptyBorder(5, 5, 5, 5)));
		scrollObservaciones.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		scrollObservaciones.setViewportView(txaObservaciones);
		scrollObservaciones.setWheelScrollingEnabled(true);
		scrollObservaciones.setPreferredSize(new Dimension(400, 166));
		txaObservaciones.setAutoscrolls(true);
		txaObservaciones.setLineWrap(true);
		txaObservaciones.setWrapStyleWord(true); 
					
		cd.gridx = 0;
		cd.gridy = 2;
		cd.gridwidth = 2;
		cd.gridheight = 1;
		gridbagDerecho.setConstraints(scrollObservaciones, cd);
		pnlDerecho.add(scrollObservaciones);
	

		cd.insets = new Insets(10, 0, 10, 5);
		cd.gridwidth = 1;
		
		
		
		
		
		//precios
		pnlPrecios.add(lblFormaPago);
		pnlPrecios.add(comboFormaPago);
		pnlPrecios.add(lblPrecioArmazon);
		pnlPrecios.add(txtPrecioArmazon);
		pnlPrecios.add(lblPrecioLente);
		pnlPrecios.add(txtPrecioLente);
		pnlPrecios.add(lblPrecioTratamiento);
		pnlPrecios.add(txtPrecioTratamiento);
		pnlPrecios.add(lblPrecioTotal);
		pnlPrecios.add(txtPrecioTotal);
		
		cd.gridx = 1;
		cd.gridy = 3;
		cd.gridheight = 1;
		cd.gridwidth = 2;
		gridbagDerecho.setConstraints(pnlPrecios, cd);
		pnlDerecho.add(pnlPrecios);
		
		c.gridheight = 1;
		
		// Botones
		pnlBotonera.add(btnAceptar);
		pnlBotonera.add(btnCancelar);
		pnlBotonera.add(btnReset);

		if (isModificacion()) {
			btnReset.setOpaque(true);
		}

		cd.insets = new Insets(05,150, 0, 0);
		cd.gridx = 0;
		cd.gridy = 4;
		cd.gridwidth = 2;
		gridbagDerecho.setConstraints(pnlBotonera, cd);
		pnlDerecho.add(pnlBotonera);


///////FIN PANEL DERECHO		
		
		c.gridx = 2;
		c.gridy = 0;
		c.gridheight = 8;
		gridbag.setConstraints(pnlDerecho, c);
		contenedor.add(pnlDerecho);
		c.gridheight = 1;
	

		comboTipo.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				if(comboTipo.getSelectedItem().equals("Bifocal") || comboTipo.getSelectedItem().equals("Multifocal")){
					modificarPantalla();
				}
				else if(isModificada()){
					restaurar();
				}
				
			}});
		btnAceptar.addActionListener(new AceptarFormulario());
		btnCancelar.addActionListener(new CerrarFormulario());
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent evt) {
				frmMain.activa(true);
				dispose();
			}
		});
	
	}

	class AceptarFormulario implements ActionListener {



		public void actionPerformed(ActionEvent arg0) {
			anteojo.setCliente(cliente.getCodigoCliente());
			anteojo.setArmazon((String)comboArmazon.getSelectedItem());
			anteojo.setTipo((String)comboTipo.getSelectedItem());
			anteojo.setLente(txtLente.getText());
			anteojo.setODEsf(txtEsfOD.getText());
			anteojo.setODCil(txtCilOD.getText());
			anteojo.setODGrado(txtGradoOD.getText());
			anteojo.setOIEsf(txtEsfOI.getText());
			anteojo.setOICil(txtCilOI.getText());
			anteojo.setOIGrado(txtGradoOI.getText());
			anteojo.setObservaciones(txaObservaciones.getText());
			try {
				anteojo.setFechaPedido( new Date(fechaPedido.getValue().getTime()));
			} catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			anteojo.setDoctor(txtDoctor.getText());
			if(!txtPrecioArmazon.getText().equals(""))anteojo.setPrecioArmazon((Double.parseDouble(txtPrecioArmazon.getText())));
			if(!txtPrecioLente.getText().equals(""))anteojo.setPrecioLente(Double.parseDouble(txtPrecioLente.getText()));
			if(!txtPrecioTratamiento.getText().equals(""))anteojo.setPrecioTratamiento(Double.parseDouble(txtPrecioTratamiento.getText()));
			if(!txtPrecioTotal.getText().equals(""))anteojo.setPrecioTotal(Double.parseDouble(txtPrecioTotal.getText()));
			anteojo.setFormaPago((String)comboFormaPago.getSelectedItem());
			anteojo.setDescripcionArmazon(txtDescripcionArmazon.getText());
						
			anteojo.setId(anteojo.save());
			if(!isModificacion()){
			frmMain.getModeloAnteojos().agregarAnteojo(anteojo);	
			
			}
			if(anteojo.getTipo().equals("Bifocal") || anteojo.getTipo().equals("Multifocal")){
				Multifocal multifocal = null;
				if(isModificacion()){
					multifocal = Multifocal.getFromId(anteojo.getId());
				}
				else{
				multifocal = new Multifocal();
				}
				multifocal.setAnteojoID(anteojo.getId());
				multifocal.setODEsf(txtEsfOD2.getText());
				multifocal.setODCil(txtCilOD2.getText());
				multifocal.setODGrado(txtGradoOD2.getText());
				multifocal.setOIEsf(txtEsfOI2.getText());
				multifocal.setOICil(txtCilOI2.getText());
				multifocal.setOIGrado(txtGradoOI2.getText());
				
				multifocal.save();
				
			}
			
			
			frmMain.setPanelInferior(anteojo,frmMain.getModeloClientes().getCliente(frmMain.getTablaClientes().getSelectedRow()));
			frmMain.activa(true);
			dispose();		
		 }
		}

		class CerrarFormulario implements ActionListener {

			public void actionPerformed(ActionEvent e) {
				frmMain.activa(true);
				dispose();
			}
		}

		public void mostrar() {
			pack();
			setVisible(true);
		}

		public boolean isModificacion() {
			return modificacion;
		}

		public void setModificacion(boolean modificacion) {
			this.modificacion = modificacion;
		}

		public int getRowEnTabla() {
			return rowEnTabla;
		}

		public void setRowEnTabla(int rowEnTabla) {
			this.rowEnTabla = rowEnTabla;
		}
		public void restaurar(){
			
		if(isModificada()){
			setModificada(false);
			pnlGraduaciones.remove(pnlOD2);
			pnlGraduaciones.remove(pnlOI2);
			pnlGraduaciones.remove(lblCerca);
			lblCerca.setVisible(false);
			lblLejos.setVisible(false);
			pack();
		  }
		}
		
		public void modificarPantalla(){
			if(!isModificada()){
			setModificada(true);
			lblCerca.setVisible(true);
			lblLejos.setVisible(true);
			
		
			txtEsfOD2 = new JTextField(7);
			txtCilOD2 = new JTextField(7);
			txtGradoOD2 = new JTextField(4);
			txtEsfOI2 = new JTextField(7);
			txtCilOI2 = new JTextField(7);
			txtGradoOI2 = new JTextField(4);
			txtCilOD2.setFont(fuente);
			txtCilOI2.setFont(fuente);
			txtEsfOD2.setFont(fuente);
			txtEsfOI2.setFont(fuente);
			txtGradoOD2.setFont(fuente);
			txtGradoOI2.setFont(fuente);
			pnlOD2 = new JPanel(new GridLayout(3, 2));
			pnlOI2 = new JPanel(new GridLayout(3, 2));
			
			lblEsf = new JLabel("Esf: ");
			lblCil = new JLabel("Cil: ");
			lblGrado = new JLabel("Grado: ");
			pnlOD2.add(lblEsf);
			pnlOD2.add(txtEsfOD2);
			pnlOD2.add(lblCil);
			pnlOD2.add(txtCilOD2);
			pnlOD2.add(lblGrado);
			pnlOD2.add(txtGradoOD2);
			pnlOD2.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createTitledBorder("OD"), BorderFactory
							.createEmptyBorder(3, 3, 3, 3)));

			lblEsf = new JLabel("Esf: ");
			lblCil = new JLabel("Cil: ");
			lblGrado = new JLabel("Grado: ");
			pnlOI2.add(lblEsf);
			pnlOI2.add(txtEsfOI2);
			pnlOI2.add(lblCil);
			pnlOI2.add(txtCilOI2);
			pnlOI2.add(lblGrado);
			pnlOI2.add(txtGradoOI2);
			pnlOI2.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createTitledBorder("OI"), BorderFactory
							.createEmptyBorder(3, 3, 3, 3)));
			
			cg.gridx = 0;
			cg.gridy = 2;
			cg.gridwidth = 2;
			cg.insets = new Insets(5, 0, 5, 0);
			gridbagGraduaciones.setConstraints(lblCerca, cg);
			pnlGraduaciones.add(lblCerca);
			
			
			cg.gridwidth = 1;
			cg.insets = new Insets(0, 0, 0, 0);
			cg.gridx = 0;
			cg.gridy = 3;
			cg.insets = new Insets(20, 20, 10, 0);
			
			gridbagGraduaciones.setConstraints(pnlOD2, cg);
			pnlGraduaciones.add(pnlOD2);
			
			cg.gridx = 1;
			cg.gridy = 3;
			gridbagGraduaciones.setConstraints(pnlOI2, cg);
			pnlGraduaciones.add(pnlOI2);
			
//			pnlGraduaciones.repaint();
//			contenedor.repaint();
//			repaint();
			pack();
			}
		}
}
		

